package org.ma1.cripto.aes.gui;

import java.awt.Color;
import java.util.Hashtable;

import org.ma1.cripto.aes.comun.Clave;
import org.ma1.cripto.aes.comun.Texto;

public class Parametros {
	private static Parametros instance = null;
	private Parametros() {	
		parametro = new Hashtable<String,Object>();
		valoresPorDefecto();
	}
	public static Parametros getCurrentInstance() {
		if (instance==null) {
			instance = new Parametros();
			instance.valoresPorDefecto();
		}
		return instance;
	}
	
	private Hashtable<String,Object> parametro;
	private SoporteDispararCambio soporteParametros = SoporteDispararCambio.getInstanceSoporteParametros();
	
	public Object getParametro(String param) {
		return parametro.get(param);
	}
	
	public void putParametro(String param, Object value) {
		parametro.put(param, value);
		
		boolean esColor = param.equals("algoritmo.color1") || param.equals("algoritmo.color2") || param.equals("algoritmo.color3");
		if (esColor) {
			soporteParametros.dispararCambio(IListener.TIPO_CAMBIO_COLOR, param);
			return;
		}
	}
	
	private void valoresPorDefecto() {
		// Colores
		parametro.put("algoritmo.color1", Color.blue);
		parametro.put("algoritmo.color2", Color.yellow.darker());
		parametro.put("algoritmo.color3", Color.red);
		parametro.put("clave",new Clave());
		parametro.put("textocifrado", new Texto());
	}
	
}
